package com.service.scheduling.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.service.dao.enums.CoinsEnum;
import com.service.dao.enums.MemberJAType;
import com.service.dao.model.JournalAccount;
import com.service.dao.model.Member;
import com.service.dao.model.MemberOut;
import com.service.dao.po.MemberCache;

import java.math.BigDecimal;
import java.util.Date;
import java.util.List;
import java.util.Set;

/**
 * <dl>
 * <dt>back-end</dt>
 * <dd>Description:</dd>
 * <dd>Copyright: Copyright (C) 2015</dd>
 * <dd>Company: </dd>
 * <dd>CreateDate: 2019年09月24日</dd>
 * </dl>
 *
 * @author
 */
public interface MemberJAService extends IService<JournalAccount> {

    void getMemberIncome(Integer memberId, MemberCache.MemberCacheBuilder builder, MemberOut memberOut);

    BigDecimal getMemberSomedayReleaseNum(Integer memberId, List<Integer> typeList, CoinsEnum coin, Date someday);

    BigDecimal getMemberTeamSomedayReleaseNum(List<Member> memberList, List<Integer> typeList, CoinsEnum coin, Date someday);

    /**
     * @Description: 统计本月业绩 排除代理商和分公司伞下业绩
     * @Author: ty
     * @Date: 2021/5/6 15:36
     * @param: [memberIds, currentMonth]
     * @return: java.math.BigDecimal
     **/
    BigDecimal totalPerformanceCurrentMonth(Set<Integer> memberIds, Date currentMonth);
    /**
     * @Description: 统计全网某一天的所有释放数量
     * @Author: ty
     * @Date: 2021/4/28 11:10
     * @param: [typeList, coin, someday]
     * @return: java.math.BigDecimal
     **/
    BigDecimal totalAllNetworkSomeDayReleaseNum(List<Integer> typeList, String coinsName, Date someday);
}
